Word-Makros
Beim Lektorieren nutze ich viele Makros, denn sie beschleunigen den Überarbeitungsprozess.
Was sind Makros?
Word VBA Makros sind kleine Programme, die in der Programmiersprache VBA (Visual Basic for Applications) geschrieben wurden und in Microsoft Word ausgeführt werden können. Mit Makros können Veränderungen, die mehrere Tastaturanschläge benötigen, auf eine Tastenkombination gelegt werden. Das ist besonders praktisch bei Veränderungen, die häufig durchgeführt werden. Ein Beispiel ist folgende Veränderung:
- zum Ende des Wortes springen
- den letzten Buchstaben eines Worts löschen,
- m einfügen,
- wieder zum Beginn des Worts zu springen.
Sie kann als Makro mit der Tastenkombination Strg + M ausgeführt werden.
Lektorierende können von Makros profitieren, da sie so effizienter und schneller arbeiten können. Zum Beispiel können Makros für das Löschen unnötiger Leerzeichen oder für das Hervorheben von wiederkehrenden Fehlern wie Rechtschreibfehlern oder falsch gesetzten Kommas verwendet werden. Dadurch sparen Lektorierende Zeit und erhöhen gleichzeitig die Qualität ihrer Arbeit.
Makros können auch für die Erstellung von individuellen Prüfprotokollen oder für die Nachverfolgung von Änderungen in Dokumenten genutzt werden. Dadurch können Fehler und Änderungen schnell und einfach gefunden und korrigiert werden, was wiederum die Produktivität und Effektivität der Lektorierenden steigert.
Installierung
Makros können in Word direkt installiert werden. Dabei wird ein neues Makro erstellt, und der Code eines vorprogrammierten Makros kann hineinkopiert werden. Um die folgenden Makros zu installieren, gehe folgendermaßen vor:
Suche dir das Makro aus
Klappe den VBA-Code aus (VBA-Code zeigen)
Kopiere den Code, indem du auf das Klemmbrett rechts klickst
Öffne den VBA-Code-Editor in Word:
Alt + F11in Word drückenKopiere den VBA-Code ganz unten in das Fenster
Normal - New Macros (Code)(optional) Weise dem Makro eine Tastenkombination zu, indem du auf
Datei–Optionen–Menüband anpassen–Tastenkombinationen: Anpassengehst. Hier kannst du unterKategorien–MakrosbeiBefehldas Makro aussuchen. Jetzt drücke die Tastenkombination, die du haben magst (z. B.Strg + M). Als letztes klickst du aufZuordnen.
Makros für Veränderungen im Text
Die erste Makro-Kategorie erleichtert das Lektorieren, indem mehrere Tastenbewegungen zu einer zusammengefasst werden. Ich nutze sie während der detaillierten Textarbeit.
AddM
Dieses Makro ersetzt den letzten Buchstaben eines Wortes durch m. Wenn der letzte Buchstabe e ist, wird hinten ein m hinzugefügt.
Dieses Makro verwendet das MoveToEndOfWord-Makro. Bitte installiere es daher gemeinsam mit diesem Makro.
VBA-Code zeigen
Sub AddM()
' Sarah Zeller
' Version 22.03.2023
' Setze ein Wort in den Akkusativ
If Not Selection.End = Selection.Start Then Exit Sub
MoveToEndOfWord
Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
'Plural to Singular
If Selection = "e" Or Selection = "u" Or Selection = "i" Then
MoveToEndOfWord
Options.ReplaceSelection = False
Selection.TypeText Text:="m"
Options.ReplaceSelection = True
Else
Selection.TypeBackspace
Selection.TypeText Text:="m"
End If
Selection.MoveLeft Unit:=wdWord
End Subeines
einen
einer
eine
einem
einem
einem
einem
AddN
Dieses Makro ersetzt den letzten Buchstaben eines Wortes durch n. Wenn der letzte Buchstabe e ist, wird hinten ein n hinzugefügt. Wenn der letzte Buchstabe n ist, wird stattdessen en hinten an das Wort angefügt.
Dieses Makro verwendet das MoveToEndOfWord-Makro. Bitte installiere es daher gemeinsam mit diesem Makro.
VBA-Code zeigen
Sub AddN()
' Setze ein Wort in den Akkusativ
' Sarah Zeller, Version 16.10.2022
If Not Selection.End = Selection.Start Then Exit Sub
MoveToEndOfWord
Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
'Plural to Singular
If Selection = "e" Or Selection = "l" Then
MoveToEndOfWord
Options.ReplaceSelection = False
Selection.TypeText Text:="n"
Options.ReplaceSelection = True
ElseIf Selection = "n" Then
Selection.InsertAfter Text:="en"
Else
Options.ReplaceSelection = True
Selection.TypeText Text:="n"
End If
' Selection.StartOf Unit:=wdWord
' MoveToEndOfWord
Selection.MoveLeft Unit:=wdWord
End Subeines
einem
einer
ein
eine
einen
einen
einen
einen
einen
AddR
Dieses Makro ersetzt den letzten Buchstaben eines Wortes durch r. Wenn der letzte Buchstabe e ist, wird hinten ein r hinzugefügt. Wenn der letzte Buchstabe n ist, wird stattdessen er hinten an das Wort angefügt.
Dieses Makro verwendet das MoveToEndOfWord-Makro. Bitte installiere es daher gemeinsam mit diesem Makro.
VBA-Code zeigen
Sub AddR()
' Setze ein Wort in den Nominativ
' Sarah Zeller
' Version: 31.03.2023
If Not Selection.End = Selection.Start Then Exit Sub
MoveToEndOfWord
Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
'Plural to Singular
If Selection = "e" Or Selection = "u" Or Selection = "a" Then
MoveToEndOfWord
Options.ReplaceSelection = False
Selection.TypeText Text:="r"
Options.ReplaceSelection = True
ElseIf Selection = "r" Then
MoveToEndOfWord
Options.ReplaceSelection = False
Selection.TypeText Text:="er"
Options.ReplaceSelection = True
Else
Selection.TypeBackspace
Selection.TypeText Text:="r"
End If
Selection.MoveLeft Unit:=wdWord
End Subletzes
letzem
letzen
letzter
letze
letzer
letzer
letzer
letzerer
letzer
AddS
Dieses Makro fügt an ein Wort den Buchstaben s an. Wenn der letzte Buchstabe s ist, wird hinten ein es hinzugefügt.
Dieses Makro verwendet das MoveToEndOfWord-Makro. Bitte installiere es daher gemeinsam mit diesem Makro.
VBA-Code zeigen
Sub AddS()
' Setze ein Wort in den Genitiv
' Sarah Zeller
' Version: 20.07.2022
If Not Selection.End = Selection.Start Then Exit Sub
MoveToEndOfWord
Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
'Plural to Singular
If Selection = "ß" Or Selection = "s" Then
Selection.InsertAfter Text:="es"
Else
Selection.InsertAfter Text:="s"
End If
Selection.MoveLeft Unit:=wdWord
End Subletzten
letzte
dies
letztens
letztes
dieses
geschuetztesLeerzeichen
Dieses Makro ersetzt das nächste normale Leerzeichen durch ein geschütztes. Dafür bewegt es sich um ein Wort nach rechts vom Cursor. Wenn dort noch kein Leerzeichen steht, setzt es ein geschützes ein; ansonsten ersetzt es das normale Leerzeichen durch ein geschütztes.
VBA-Code zeigen
Sub geschuetztesLeerzeichen()
'
' geschütztesLeerzeichen Makro
' ersetzt das nächste normale Leerzeichen durch ein geschütztes
' Sarah Zeller, 16.10.2022
With ActiveWindow.View.RevisionsFilter
.Markup = wdRevisionsMarkupSimple
End With
Selection.MoveRight Unit:=wdWord, Count:=1
Selection.MoveLeft Unit:=wdCharacter, Count:=1
If Selection = " " Or Selection = ChrW(160) Then
Selection.MoveRight
Selection.TypeBackspace
Else: Selection.MoveRight
End If
Selection.TypeText Text:=ChrW(160)
End Sub35g
84,7 km
35 g
84,7 km
MoveToEndOfWord
Dieses Makro bewegt den Cursor an das Ende des Worts. Wenn man bei Word Strg + → drückt, wird der Cursor an den Beginn des nächsten Worts gebracht, d. h. die Leerzeichen werden übersprungen. Dieses Makro ist eine Alternative.
VBA-Code zeigen
Sub MoveToEndOfWord()
' moves to the end of a word
' regardless of any potential whitespaces before the next word
If Selection.Text = " " Then
Selection.MoveRight Unit:=wdWord, Count:=1
End If
Selection.MoveRight Unit:=wdWord, Count:=1
Selection.MoveLeft Unit:=wdCharacter, Count:=1
If Selection.Text <> " " Then
Selection.MoveRight Unit:=wdCharacter, Count:=1
End If
End Sub|eines Tages
eines| Tages
ZitatKlammernZuText
Dieses Makro verwandelt eine Referenz, die in Klammern steht, in eine Referenz, die im Text steht.
VBA-Code zeigen
Sub ZitatKlammernZuText()
'
' ZitatKlammernZuText Makro
' Ändert ein Zitat um: von in Klammern gesetzt zu im Fließtext eingebettet
'
'
Dim i
Dim j
Dim k
i = 0
j = 0
k = 0
' Make sure I can jump back if I want to
ActiveDocument.Bookmarks.Add Name:="temp"
' Check for parenthesis
Do Until i >= 10
Selection.MoveRight Unit:=wdWord
Selection.Expand Unit:=wdCharacter
If Selection = "(" Then
Selection.Delete
i = 11
Else: i = i + 1
End If
Loop
' jump back if no parenthesis
If i = 10 Then
ActiveDocument.Bookmarks("temp").Select
ActiveDocument.Bookmarks("temp").Delete
Exit Sub
End If
' Delete comma and set parenthesis
Do Until j >= 15
Selection.MoveRight Unit:=wdWord
Selection.Expand Unit:=wdCharacter
If IsNumeric(Selection) Then
' Place parenthesis
Selection.InsertBefore Text:="("
j = 16
' Delete comma
Do Until k = 4
Selection.MoveLeft Unit:=wdCharacter
If Selection = "," Then
Selection.Delete
k = 4
ElseIf Selection = " " Then k = k + 1
ElseIf Selection = "," Then k = k + 1
Else: k = k + 1
End If
Loop
Else: j = j + 1
End If
Loop
End SubNach (Jack und Jones, 2023) ist dies ein Beispielsatz.
Nach Jack und Jones (2023) ist dies ein Beispielsatz.